package com.reportes;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.http.HttpServletRequest;

import com.Reporte;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import exceptions.InvalidArgumentException;

public class Grupos extends Reporte {

	@Override
	public void VerificarParametros(HttpServletRequest request)
			throws InvalidArgumentException {

		setParametrosJasper("parametro",request.getParameter("parametroConsulta"));
	}

	@Override
	public Object clone() throws CloneNotSupportedException {
		Grupos reporte = new Grupos();
		copyAttributesTo(reporte);
		return reporte;
	}

	@Override
	protected JRDataSource executeQuery(Connection connection)
			throws SQLException {
		StringBuffer sql =
			new StringBuffer("SELECT")
					.append(" Grupo.id,")
					.append(" Grupo.nombre,")
					.append(" Usuario.usuario,")
					.append(" Personal.nombre,")
					.append(" Personal.apellido,")
					.append(" Personal.cedula,")
					.append(" Personal.email")
					.append(" FROM")
					.append(" Grupo")
					.append(" INNER JOIN usuario ON (grupo.id = usuario.grupo_id)") 
					.append(" INNER JOIN personal on (usuario.personal_id = personal.id)")
					.append(" ORDER BY grupo.nombre");
		Statement statement = connection.createStatement();
		ResultSet rs = statement.executeQuery(sql.toString());
		return new JRResultSetDataSource(rs);
	}

}
